home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / utilstem / memkit / hram.doc < prev    next >
Encoding:
Text File  |  1991-09-12  |  40.5 KB  |  1,295 lines

  1.  
  2.                                                                           1
  3.  
  4.  
  5.           HRAM
  6.           Version 1.1 
  7.           User's Guide
  8.  
  9.           COPYRIGHT   
  10.  
  11.           This HRAM documentation and the software are copyrighted with all
  12.           rights reserved.  Under the copyright laws, neither the
  13.           documentation nor the software may be copied, photocopied,
  14.           reproduced, translated, or reduced to any electronic medium or
  15.           machine-readable form, in whole or in part, without the prior
  16.           written consent of Biologic, except in the manner described in
  17.           this manual.  The unregistered version of HRAM and accompanying
  18.           documentation may be freely copied and distributed.
  19.  
  20.           Copyright (C) Biologic 1990-1991
  21.  
  22.           All rights reserved.  First edition printed 1990.  Printed in the
  23.           United States.
  24.  
  25.           Software License Notice   
  26.  
  27.           Your license agreement with Biologic, which is included with the
  28.           product, specifies the permitted and prohibited uses of the
  29.           product.  Any unauthorized duplication or use of HRAM in whole or
  30.           in part, in print, or in any other storage and retrieval system
  31.           is forbidden.
  32.  
  33.           Licenses and Trademarks   
  34.  
  35.           MS-DOS is a registered trademark of Microsoft Corporation.  HRAM
  36.           is a trademark of Biologic.
  37.  
  38.  
  39.           Biologic
  40.           POB 1267
  41.           Manassas VA 
  42.           22110
  43.           USA
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                           2
  64.  
  65.  
  66.           CONTENTS
  67.  
  68.           License Agreement and Disclaimer of Warranty  3
  69.           Introduction  4
  70.           Notes on Memory and Memory Addresses  5
  71.           Testing Your Memory with Chkmem  9
  72.           Notes for 8088 and 80286 PCs  10
  73.           Notes for 80386 PCs  11
  74.           Condensed Instructions  12
  75.           hramdev.sys  14
  76.           hram.exe  16
  77.           hram.sys  20
  78.           Your Turn  22
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.                                                                           3
  125.  
  126.  
  127.           LICENSE AGREEMENT AND DISCLAIMER OF WARRANTY
  128.  
  129.           License agreement   
  130.  
  131.           The terms of this license agreement apply to you and to any
  132.           subsequent licensee of this HRAM software.  Biologic retains the
  133.           ownership of this copy of HRAM software.  This copy is licensed
  134.           to you for use under the following conditions.
  135.  
  136.              You may use the HRAM software on any compatible computer,
  137.              provided the HRAM software is used on only one computer and by
  138.              one user at a time.
  139.  
  140.              You may not provide use of the software in a computer service
  141.              business, network, timesharing, multiple CPU or multiple user
  142.              arrangement to users who are not individually licensed by
  143.              Biologic, except that you may designate any employee to use
  144.              such products on a one employee per license basis.
  145.  
  146.              You may not disassemble or decompile the HRAM software.
  147.  
  148.           Disclaimer of warranty   
  149.  
  150.           Biologic excludes any and all implied warranties, including
  151.           warranties of merchantability and fitness for a particular
  152.           purpose.  Biologic does not make any warranty of representation,
  153.           either express or implied, with respect to this software program,
  154.           its quality, performance, merchantability, or fitness for a
  155.           particular purpose.  Biologic shall not have any liability for
  156.           special, incidental, or consequential damages arising out of or
  157.           resulting from the use of this program.
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.                                                                           4
  186.  
  187.  
  188.           INTRODUCTION
  189.  
  190.           Description   
  191.  
  192.           HRAM is a powerful memory management program for 8088, 8086,
  193.           80286, 80386 and 80486 PCs that enhances the utilization of high
  194.           memory (memory between 640K and 1024K).  It works in conjunction
  195.           with DOS 5 to create up to 96K of extra low DOS memory and up to
  196.           224K of high DOS memory for use by device drivers (such as
  197.           network drivers) and memory resident programs (TSRs).  In
  198.           addition, it provides many of the necessary memory management
  199.           features DOS 5 left out: 
  200.  
  201.              HRAM creates high memory on 8088, 80286, and 80386 PCs (DOS 5
  202.              creates high memory on 386 PCs only.) 
  203.  
  204.              On 386 PCs, HRAM provides more high memory than DOS 5 by
  205.              thoroughly searching the area between 640K and 1024K and
  206.              converting ALL unused areas to high memory--memory that DOS 5
  207.              often overlooks 
  208.  
  209.              HRAM gives you an extra 64K of high memory for program
  210.              initialization by using expanded memory for loading drivers
  211.              and TSRs--this means you'll often load programs you couldn't
  212.              load before. 
  213.  
  214.              HRAM optimizes your high memory by  automatically determining
  215.              which order and in which memory region your drivers and TSRs
  216.              should be loaded. This one step can easily double the
  217.              utilization of your high memory. (DOS 5 suggests that you
  218.              "experiment with different combinations and orders of
  219.              programs".  When you consider that your high memory may
  220.              consist of several separate regions and that you probably use
  221.              up to a dozen drivers and TSRs, this process, without HRAM,
  222.              could require rebooting your PC thousands of times!)
  223.  
  224.           Overview   
  225.  
  226.           HRAM is a set of programs that consists of: 
  227.  
  228.              hramdev.sys, a device driver that manages upper memory and can
  229.              fill unused upper memory areas with expanded memory or shadow
  230.              RAM.
  231.  
  232.              hram.exe, a program that works in conjunction with the DOS
  233.              LOADHIGH command to optimally load TSRs into the high DOS
  234.              memory created by hramdev.sys.  hram.exe also provides a
  235.              status report of high memory and lists the programs that have
  236.              been loaded into it.
  237.  
  238.              hram.sys, a special driver that works in conjunction with the
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.                                                                           5
  247.  
  248.              DOS DEVICEHIGH command to optimally load device drivers into
  249.              high DOS memory.
  250.  
  251.           A utility program, Chkmem, is included in the package and
  252.           provides information about the status of memory in your PC.
  253.  
  254.           Requirements
  255.  
  256.              A PC with a 8088, 8086, 80286, 80386 or 80486 microprocessor.
  257.  
  258.              IBM Personal Computer Disk Operating System (PC-DOS) or
  259.              Microsoft Disk Operating System (MS-DOS) version 5.0 or
  260.              greater.
  261.  
  262.              On 8088 and 80286 PCs, expanded memory version 4 or Chips &
  263.              Technologies shadow RAM.
  264.  
  265.           Contents of the HRAM disk   
  266.  
  267.           The following files are included in the root directory of the
  268.           distribution disk.
  269.  
  270.              hramdev.sys
  271.              hram.exe
  272.              hram.sys
  273.              chkmem.exe
  274.              read.me
  275.  
  276.           There may also be a \freeware directory which contains
  277.           unregistered versions of our other software products.
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.                                                                           6
  308.  
  309.  
  310.           NOTES ON MEMORY 
  311.           AND MEMORY ADDRESSES
  312.  
  313.           Conventional Memory   
  314.  
  315.           Conventional memory is located between 0K and 1024K and is the
  316.           maximum amount of memory that can be addressed by the 8088
  317.           microprocessor on which the IBM PC is based.1  The designers of
  318.           the original PC divided conventional memory space into a 640K
  319.           block of memory to be used by MS-DOS programs (low DOS memory)
  320.           and a 384K block of upper memory (which can be used for high DOS
  321.           memory) for system hardware and ROM.  The term, conventional
  322.           memory, is sometimes used to refer just to memory from 0 to 640K.
  323.  
  324.           Expanded Memory   
  325.  
  326.           Expanded memory is "paged" memory that can exist in 8088, 80286,
  327.           and 80386 based PCs.  As the memory requirements of programs
  328.           grew, expanded memory was developed to support up to 32M of
  329.           memory by swapping small blocks or "pages" of extra memory into
  330.           the 1M address space of the 8088 processor so that only a few
  331.           pages are addressable at a time.  Memory pages that are not in
  332.           use are stored as deactivated pages on an expanded memory board.
  333.  
  334.           The original expanded memory specification, EMS version 3.2, was
  335.           developed jointly by Lotus, Intel, and Microsoft.  Soon after,
  336.           AST and Ashton-Tate developed a similar, but enhanced,
  337.           specification called EEMS.  These two specifications were
  338.           replaced by EMS version 4.0, which incorporated features of both
  339.           specifications.
  340.  
  341.           Below is a summary of a few important features:
  342.  
  343.              An expanded memory page is 16K in size.
  344.  
  345.              Expanded memory that conforms to the version 3.2 specification
  346.              can be mapped only into a 64K region in high memory called the
  347.              page frame.  EMS version 4.0 supports the mapping of expanded
  348.              memory into any location in conventional memory.
  349.  
  350.              A software control program, called an expanded memory manager,
  351.              manages the placement of memory pages, and is typically loaded
  352.              by the config.sys file when your PC is turned on or restarted.
  353.  
  354.           Extended Memory   
  355.  
  356.           Intel's newer processors, starting with the 80286, are capable of
  357.                               
  358.           ____________________
  359.  
  360.                11K equals 1,024 bytes. 1024K equals 1,048,576 bytes or 1
  361.           megabyte.
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.                                                                           7
  370.  
  371.           addressing memory above 1M--extended memory.  Unfortunately, this
  372.           memory is not addressable when these processors are in a
  373.           processor state called real mode (a mode designed to maintain
  374.           compatibility with the 8088) and cannot be fully utilized when
  375.           using a real mode operating system such as MS-DOS.  
  376.  
  377.           The problem of accessing extended memory while running MS-DOS has
  378.           spawned several solutions:  
  379.  
  380.              On PCs that support extended memory, a feature of the ROM BIOS
  381.              allows programs to copy data between conventional and extended
  382.              memory.  Although programs cannot execute in extended memory,
  383.              they can use it as storage space.  Programs that take
  384.              advantage of this feature include RAM disks, print spoolers,
  385.              and 80286 expanded memory simulators.  
  386.  
  387.              Protected mode run-time environments which allow an
  388.              application program to execute in protected mode under MS-DOS.
  389.  
  390.              80386 memory managers, like VRAM/386, that use the page
  391.              mapping capability of the 80386 processor to convert extended
  392.              memory into expanded memory and provide additional
  393.              conventional memory for use by MS-DOS.  
  394.  
  395.           Memory Addresses   
  396.  
  397.           Memory addresses and ranges are typically specified using
  398.           hexadecimal (hex) numbers.  Hex numbers include the digits 0-9
  399.           and the letters A-F, giving 16 possible values for each hex
  400.           digit. 
  401.  
  402.           Conventional memory can be divided into 64 pages of 16K each.
  403.           These pages can be referred to as page 0, page 1, page 2, and so
  404.           on, or, as is the case in this manual, by their hexadecimal
  405.           segment addresses.  Using this notation, page 0 is at segment 0,
  406.           page 1 is at segment 0400, page 2 is at segment 0800, etc.  The
  407.           following table lists some page numbers and their corresponding
  408.           segment address and linear address:
  409.  
  410.                             Segment      Linear
  411.                Page         Address     Address
  412.                ________________________________
  413.  
  414.                   0         0000             0K
  415.                   1         0400            16K
  416.                   2         0800            32K
  417.                   3         0c00            48K
  418.                   4         1000            64K
  419.                   5         1400            80K
  420.                   8         2000           128K
  421.                  12         3000           196K
  422.                  40         a000           640K
  423.                  44         b000           704K
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.                                                                           8
  432.  
  433.                  63         fc00         1,008K
  434.  
  435.                   
  436.           The first 40 pages (640K) of conventional memory are used by MS-
  437.           DOS and the other 24 pages are reserved for system hardware and
  438.           ROM.  The exact usage of the upper 384K of conventional memory
  439.           depends on the hardware configuration of your machine; typically,
  440.           several blocks of this area are not used and are simply empty
  441.           space.
  442.  
  443.           The table below lists the memory map of a typical PC:
  444.  
  445.  
  446.              Address
  447.              Range        Description                
  448.              ________________________________________
  449.  
  450.              0000-9fff    low DOS memory (640K)
  451.              a000-bfff    VGA display adapter (128K)
  452.              c000-c7ff    hard disk controller (32K)
  453.              c800-cfff    unused address space (32K)
  454.              d000-dfff    expanded memory page frame (64K)    
  455.              e000-efff    unused address space (64K)
  456.              f000-ffff    ROM
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.                                                                           9
  494.  
  495.  
  496.           TESTING YOUR MEMORY WITH CHKMEM
  497.  
  498.           The Chkmem program is a memory utility which displays the types
  499.           and amounts of memory in your PC.  With it, you can determine the
  500.           current status of the upper memory area (the area between 640K
  501.           and 1024K) and the amount of high DOS memory that can be created
  502.           from it.  
  503.  
  504.           Enter the command [chkmem] (don't type the brackets) to display
  505.           the amount of upper memory that can be created on your PC. 
  506.           Example output is shown below:
  507.  
  508.           Biologic Chkmem, version 1.1
  509.           copyright (c) Biologic 1990-1991. all rights reserved.
  510.  
  511.               655360 bytes conventional memory (low DOS memory)
  512.                    0 bytes extended memory
  513.               351232 bytes available XMS memory
  514.               655360 bytes expanded memory
  515.  
  516.                    0 bytes high DOS memory
  517.                    0 bytes upper memory blocks (UMBs)
  518.                    0 bytes expanded memory can be converted to high DOS mem 
  519.                    0 bytes shadow ram can be converted to high DOS memory
  520.               163840 bytes unused areas can be converted to high DOS memory
  521.               163840 bytes high DOS memory can be created
  522.  
  523.  
  524.              If the last line in the listing, "bytes high DOS memory can be
  525.              created", is not 0, then HRAM can create and/or manage high
  526.              DOS memory on your PC.
  527.  
  528.              If you have a 8088 or a 80286 PC and the listing shows that
  529.              the only available source of high DOS memory is "unused
  530.              areas", as in the example above, then you must add expanded
  531.              memory to your system.  Read the section, "Notes for 8088 and
  532.              80286 PCs" for more information on installing expanded memory.
  533.  
  534.              If you have expanded memory and only 65536 bytes (64K) can be
  535.              converted to high DOS memory, your expanded memory may not be
  536.              fully compatible with the EMS version 4.0 specification or it
  537.              may need to be configured differently.  Read the section,
  538.              "Notes for 8088 and 80286 PCs" for more information on
  539.              configuring your expanded memory.
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.                                                                          10
  555.  
  556.  
  557.           NOTES FOR 8088 AND 80286 PCS
  558.  
  559.           1. HRAM can utilize shadow RAM provided on PCs with the NEAT
  560.              Chipset from Chips & Technologies.  Expanded memory is not
  561.              required on PCs that have this chipset.
  562.  
  563.           2. HRAM can also convert expanded memory to high DOS memory,
  564.              provided your expanded memory is hardware compatible with EMS
  565.              version 4.0.  If the Chkmem program reported that only 65536
  566.              bytes of high DOS memory can be created from expanded memory,
  567.              then your expanded memory is either not hardware compatible
  568.              with EMS 4 or it needs to be reconfigured.  Consult the
  569.              documentation for the board or contact your computer dealer to
  570.              make this determination (note: many memory boards are software
  571.              compatible with EMS 4 but are not fully compatible on a
  572.              hardware level). 
  573.  
  574.           3. If your expanded memory is hardware compatible with EMS 4 and
  575.              Chkmem reports that only 65536 bytes of high DOS memory can be
  576.              created from expanded memory, then you need to reconfigure
  577.              your expanded memory by changing the line in your config.sys
  578.              file that loads the expanded memory manager for the board. 
  579.              Run the command [chkmem /c] to display a recommended command
  580.              line for your expanded memory manager.
  581.  
  582.           4. If your expanded memory is not hardware compatible with EMS 4,
  583.              you can still create high DOS memory by using the hramdev /f
  584.              option.  This option will give you 64K of high DOS memory, but
  585.              will make your expanded memory unavailable to other programs.
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.                                                                          11
  616.  
  617.  
  618.           NOTES FOR 80386 PCS
  619.  
  620.           1. HRAM can utilize shadow RAM provided on PCs with the AT/386
  621.              Chipset from Chips & Technologies.  If you do not need to
  622.              convert extended memory to expanded, the expanded memory
  623.              manager, emm386.exe, is not required on PCs that have this
  624.              chipset.
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.                                                                          12
  677.  
  678.  
  679.           CONDENSED INSTRUCTIONS
  680.  
  681.           Creating high DOS memory
  682.  
  683.           1. If you have a 386 PC or if you have EMS 4 expanded memory, you
  684.              need to add a [device=] line to your config.sys file which
  685.              loads your expanded memory manager.  An expanded memory
  686.              manager is a single file which, typically, has "EMM" in its
  687.              name.  If this line already exists in your config.sys file,
  688.              you may need to change the parameters so that your expanded
  689.              memory is configured correctly.  If you are using shadow RAM
  690.              to create high DOS memory, you should skip this step.
  691.  
  692.                 80386 PCs: DOS 5 provides an expanded memory manager,
  693.                 emm386.exe, for use on 386 PCs.  If you have a 386 PC, you
  694.                 should run the [chkmem /c] command to list the recommend
  695.                 command line for emm386.exe, and add this line to your
  696.                 config.sys file (or modify it if it already exists). This
  697.                 line should be located immediately after the line
  698.                 [device=himem.sys].
  699.  
  700.                 8088/80286 PCs: Run the command [chkmem /c] to list a
  701.                 recommended command line for the expanded memory manager
  702.                 that was provided with your memory board.  You should add
  703.                 this line to your config.sys file (or modify it if it
  704.                 already exists).  Since expanded memory managers are
  705.                 different for every board, the syntax of this command may
  706.                 differ slightly from what is displayed by [chkmem /c].  You
  707.                 should consult the documentation for your memory board for
  708.                 information on the exact syntax of this command.
  709.  
  710.           2. Add the line [dos=umb] to your config.sys file. 
  711.  
  712.           3. Add the line [device=hramdev.sys] to your config.sys file. 
  713.              This line should be located immediately after the line that
  714.              loads emm386.exe [device=emm386.exe] or, if you have a 8088 or
  715.              80286 PC, this line should be located immediately after the
  716.              line that loads the expanded memory manager for your memory
  717.              board.  If you do not have expanded memory, this line should
  718.              be located near the beginning before any other [device=]
  719.              lines.
  720.  
  721.           4. Reboot your PC and run the Chkmem program.  Chkmem should
  722.              report a non-zero value for "bytes high DOS memory".  Enter
  723.              the command [chkmem /h] to display the size and location of
  724.              the high DOS memory regions in your PC.
  725.  
  726.           Optimizing high DOS memory
  727.  
  728.           High DOS memory is utilized in two ways: (1) programs that
  729.           recognize this area will automatically take advantage of it, and
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.                                                                          13
  738.  
  739.           (2) TSRs and device drivers can be loaded into it with the DOS
  740.           commands DEVICEHIGH and LOADHIGH.  
  741.  
  742.           The process of loading programs high is complicated by the fact
  743.           that high DOS memory is a relatively small area, which may
  744.           consist of several regions of different sizes, and that, when
  745.           loaded, programs have an initialization size which may be much
  746.           larger (or smaller) than their resident size.  Loading programs
  747.           in a different order or into different memory regions can
  748.           significantly increase the number of programs you are able to
  749.           load high.  
  750.  
  751.           HRAM provides features which allow you to gain optimum use of
  752.           your high DOS memory: it automatically determines the resident
  753.           size and initialization size of each of your drivers and TSRs, it
  754.           calculates the best configuration for your high memory, it allows
  755.           you to load a program into a specific region, and it provides an
  756.           extra 64K of memory for program initialization by temporarily
  757.           adding expanded memory to high DOS memory.
  758.  
  759.           Follow the steps below to optimize your memory:
  760.  
  761.           1. Add the /s option to the [device=hramdev.sys] line in your
  762.              config.sys file and add a new line as shown below:
  763.  
  764.              device=hramdev.sys /s
  765.              device=hram.sys on
  766.  
  767.           2. Reboot your PC.
  768.  
  769.           3. Type the command [hram /l] to list the analysis of your
  770.              drivers and TSRs.
  771.  
  772.           4. Type the command [hram /c] to list recommended commands for 
  773.              loading your programs high and add these lines to your
  774.              config.sys and autoexec.bat files. 
  775.  
  776.           5. Remove the /s option from the [device=hramdev.sys] line in
  777.              your config.sys file and reboot your PC.
  778.  
  779.           6. Use the [hram /m] command to list the programs that have been
  780.              loaded into high DOS memory.
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.                                                                          14
  799.  
  800.  
  801.           HRAMDEV.SYS
  802.  
  803.           Command reference   
  804.  
  805.           The format of the hramdev.sys command is
  806.  
  807.           device=d:\path\hramdev.sys [options]
  808.  
  809.           [options]
  810.              specifies the optional hramdev.sys parameters described in the
  811.              following section.
  812.  
  813.           The following options can appear in the hramdev.sys command.  
  814.  
  815.           /f
  816.              Use the expanded memory page frame for high DOS memory.  The
  817.              page frame is a 64K buffer in the high memory area into which
  818.              expanded memory pages are mapped.  Although EMS version 4.0
  819.              supports mapping of expanded memory to areas outside the page
  820.              frame, most software programs, at a minimum, require the page
  821.              frame to be available.  This option will create an additional
  822.              64K of high memory, but will, in most cases, prevent other
  823.              programs from utilizing expanded memory.
  824.  
  825.           /i<addressrange>
  826.              Include address range.  The memory range specified by
  827.              <addressrange> will be converted to high DOS memory.  It must
  828.              be above a000 (hex).  <addressrange> is specified with
  829.              hexadecimal segment addresses which must be multiples of 16K
  830.              (0000, 0400, 0800, 0c00, 1000, 1400, ...).  For example, to
  831.              include the range c000 to c800 use the parameter [/ic000-
  832.              c800].  Multiple include ranges should be separated by commas. 
  833.              For example, [/ic000-c800,e000-f000].
  834.  
  835.              If /i is used, only the memory areas with the include range(s)
  836.              will be available as high DOS memory.
  837.  
  838.              This option is useful only if there are mappable areas in high
  839.              memory that should not be under the control of hramdev.sys. 
  840.              Normally, this option should not be used; hramdev.sys will
  841.              automatically convert all mappable high memory (excluding the
  842.              page frame) into high DOS memory.  
  843.  
  844.           /n
  845.              No pause on error.  If hramdev.sys reports an error, it waits
  846.              for you to press a key.  This option causes hramdev.sys to
  847.              continue without waiting for a key.
  848.  
  849.           /p
  850.              Do not use expanded memory for program initialization. 
  851.              Normally, HRAM provides extra memory for use by programs
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.                                                                          15
  860.  
  861.              during their initialization by temporarily adding 64K of
  862.              expanded memory to high DOS memory. 
  863.  
  864.           /s
  865.              Get size of programs.  HRAM will calculate the resident size
  866.              and initialization size of every driver and TSR that is loaded
  867.              after it and write this information to the file
  868.              "\hram0000.dat" for use by the [hram /l] command.  Programs
  869.              will not be loaded high when this option is used.
  870.  
  871.  
  872.           /x<addressrange>
  873.              Exclude address range.  This option prevents hramdev.sys from
  874.              using a particular range of addresses.  <addressrange> is
  875.              specified with hexadecimal segment addresses which must be
  876.              multiples of 16K.  For example, to exclude the range c000 to
  877.              c800 use the parameter [/xc000-c800].  Multiple exclude ranges
  878.              should be separated by commas.  For example, [/xc000-
  879.              c800,e000-f000].
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.                                                                          16
  921.  
  922.  
  923.           HRAM.EXE
  924.  
  925.           Displaying regions and programs in high memory   
  926.  
  927.           The command, [hram /m], will display a status report of the high
  928.           memory created by hramdev.sys.  As illustrated in the following
  929.           example, the report lists the location and size of each high
  930.           memory region as well as the TSRs and drivers that have been
  931.           loaded:
  932.  
  933.           Biologic HRAM, version 1.1
  934.           copyright (c) Biologic 1990-1991. all rights reserved.
  935.  
  936.           region  address                size
  937.           ------  ---------  ----------------
  938.           0       b002-b7fd    32704 ( 31.9k)
  939.           1       c802-dfff    98272 ( 96.0k)
  940.  
  941.           region  address                size  program
  942.           ------  ---------  ----------------  -------
  943.           0       b003-b01b      400 (  0.4k)  (character device) setverxx
  944.           0       b01d-b122     4192 (  4.1k)  (character device) con     
  945.           0       b124-b67d    21920 ( 21.4k)  (character device) smartaar
  946.           0       b684-b6e0     1488 (  1.5k)  c:\util\unblink.com
  947.           0       b6e7-b7d9     3888 (  3.8k)  c:\util\calc.com
  948.           0       b7db-b7fd      560 (  0.5k)  (avail)
  949.           0                      128 (  0.1k)  other allocated blocks
  950.           1       c803-cba0    14816 ( 14.5k)  (character device) ms$mouse
  951.           1       cba7-cdcc     8800 (  8.6k)  c:\util\anarkey.com
  952.           1       cdd3-cdfe      704 (  0.7k)  c:\util\fastkey.com
  953.           1       ce05-ce27      560 (  0.5k)  c:\util\scrnsave.com
  954.           1       ce29-dfff    73072 ( 71.4k)  (avail)
  955.           1                      192 (  0.2k)  other allocated blocks
  956.  
  957.           expanded memory page frame located at: e000
  958.           hram: off
  959.  
  960.  
  961.           Note that each region is identified by a number, starting with 0,
  962.           and that the report indicates into which region each TSR or
  963.           device driver has been loaded.  The amount of available space
  964.           remaining in each region is listed also.
  965.  
  966.           The command, [hram /a], will list the raw memory allocations in
  967.           high memory.
  968.  
  969.  
  970.           Loading TSRs into high DOS memory   
  971.  
  972.           hram.exe, itself, does not load programs into high memory, it
  973.           works in conjunction with DOS to improve the function of the
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.                                                                          17
  982.  
  983.           LOADHIGH command.  hram.exe provides a way to load a program into
  984.           a specific memory region and provides an extra 64K for program
  985.           initialization by temporarily converting expanded memory to high
  986.           DOS memory.  To illustrate, suppose you wish to load a TSR
  987.           program, called Notepad, into high DOS memory.  The command you
  988.           normally use to load it into low memory is:
  989.  
  990.           notepad /i
  991.  
  992.           The command to load it into high memory, without using HRAM,
  993.           would be:
  994.  
  995.           loadhigh notepad /i
  996.  
  997.           The commands to load the program into the second memory region in
  998.           high memory (regions are numbered starting with 0) and provide an
  999.           additional 64K of memory would be:
  1000.  
  1001.           hram on /r1
  1002.           loadhigh notepad /i
  1003.           hram off
  1004.  
  1005.           Although the LOADHIGH command alone will load notepad into high
  1006.           memory, it will load it into the first available high memory
  1007.           region; the advantage to using HRAM is that it will force
  1008.           LOADHIGH to load it into a specific region.  This is an important
  1009.           feature, since in order to gain optimum use of high memory, your
  1010.           programs should be loaded into the region recommended by HRAM
  1011.           (with the [hram /l] command).  In addition, suppose you have 100K
  1012.           of high memory, but the notepad program requires 150K for
  1013.           initialization.  Without HRAM, there would not be enough high
  1014.           memory and LOADHIGH would load it into low memory.  Since HRAM
  1015.           provides an additional 64K for initialization, the program would
  1016.           be successfully loaded high.
  1017.  
  1018.           The HRAM command can be executed at the DOS prompt or it can be
  1019.           used within a batch file (usually your autoexec.bat file).  When
  1020.           the HRAM command is executed without any parameters, [hram], it
  1021.           reports the current status of HRAM--on or off.
  1022.  
  1023.  
  1024.           Command reference   
  1025.  
  1026.           The format of the HRAM command is
  1027.  
  1028.           hram [on|off] [options] 
  1029.  
  1030.           [on|off]
  1031.              specifies whether HRAM should be "on" or "off".  When HRAM is
  1032.              on, programs can only be loaded into the memory region
  1033.              specified on the HRAM command line (with the /r option) and
  1034.              64K of expanded memory is temporarily converted to high DOS
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.                                                                          18
  1043.  
  1044.              memory. 
  1045.  
  1046.           [options]
  1047.              specifies the optional HRAM parameters described in the
  1048.              following section.
  1049.  
  1050.           The following options can appear in the HRAM command. 
  1051.  
  1052.           /?
  1053.              Display help.
  1054.  
  1055.           /a
  1056.              List raw memory allocations in high DOS memory.  Use this
  1057.              option to display the memory control blocks that have been
  1058.              allocated from high memory.
  1059.  
  1060.           /c
  1061.              List recommended config.sys and autoexec.bat files.  When the
  1062.              /s option is added to the hramdev.sys command and your PC is
  1063.              rebooted, information about the memory requirements of your
  1064.              drivers and TSRs is written to the file "\hram0000.dat".  The
  1065.              command [hram /c] analyzes this information and displays a
  1066.              list of recommended commands for your config.sys and
  1067.              autoexec.bat files.
  1068.  
  1069.           /i
  1070.              Display registration information.  This option causes hram.exe
  1071.              to list information about registering your copy of HRAM.  If
  1072.              you have not purchased a registered copy of HRAM, and you
  1073.              continue to use it after a reasonable testing period, you are
  1074.              required to register your copy.
  1075.  
  1076.           /l
  1077.              List analysis of programs.  When the /s option is added to the
  1078.              hramdev.sys command and your PC is rebooted, information about
  1079.              the memory requirements of your drivers and TSRs is written to
  1080.              the file "\hram0000.dat".  The command [hram /l] analyzes this
  1081.              information and displays the optimum load order and memory
  1082.              region for each program.
  1083.  
  1084.           /m
  1085.              List regions and programs in high DOS memory.  [hram /m] lists
  1086.              a status report of high memory, including the size and
  1087.              location of each memory region and program or device driver. 
  1088.              Read the previous section, "Displaying regions and programs in
  1089.              high memory", for more information.
  1090.  
  1091.           /n
  1092.              No pause on error.  If hram.exe reports an error, it waits for
  1093.              you to press a key.  This option causes hram.exe to continue
  1094.              without waiting for a key.
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.                                                                          19
  1104.  
  1105.           /o<order>
  1106.              Set program load order.  This option is useful only if you
  1107.              have a program which must be loaded before one or more other
  1108.              programs.  For example, to ensure that program1.exe is loaded
  1109.              before program2.exe and program3.exe, include these commands
  1110.              in your autoexec.bat file:
  1111.  
  1112.              hram on /o1
  1113.              program1
  1114.              hram on /o2
  1115.              program2
  1116.              program3
  1117.              hram on
  1118.  
  1119.              To ensure that program1.exe is loaded before program2.exe and
  1120.              that program2.exe is loaded before program3.exe, use these
  1121.              commands:
  1122.  
  1123.              hram on /o1
  1124.              program1
  1125.              hram on /o2
  1126.              program2
  1127.              hram on /o3
  1128.              program3
  1129.              hram on
  1130.  
  1131.              This option is valid only if the /s option is used on the
  1132.              hramdev.sys command line.  Otherwise, it is ignored.
  1133.  
  1134.           /p
  1135.              Do not temporarily convert 64K of expanded memory to high DOS
  1136.              memory for use during program initialization.
  1137.  
  1138.           /r<region>
  1139.              Load into memory region number <region>.  This option causes
  1140.              LOADHIGH to load one or more programs into the specified
  1141.              memory region.  For example, the following commands would load
  1142.              the programs, notepad.exe and calc.exe, into memory region 1
  1143.              (memory regions are numbered starting with 0): 
  1144.  
  1145.              hram on /r1
  1146.              loadhigh notepad
  1147.              loadhigh calc
  1148.              hram off
  1149.  
  1150.              Without this option, LOADHIGH loads programs into the first
  1151.              memory region in which they fit.
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.                                                                          20
  1165.  
  1166.  
  1167.           HRAM.SYS
  1168.  
  1169.           Like hram.exe, hram.sys does not load programs into high memory,
  1170.           it works in conjunction with DOS to improve the function of the
  1171.           DEVICEHIGH command.  hram.sys provides a way to load a device
  1172.           driver into a specific memory region and provides an extra 64K
  1173.           for driver initialization by temporarily converting expanded
  1174.           memory to high DOS memory.  To illustrate, suppose you wish to
  1175.           load the device driver, ansi.sys, into high DOS memory.  The
  1176.           command you normally use to load it into low memory is:
  1177.  
  1178.           device=ansi.sys
  1179.  
  1180.           The command to load it into high memory, without using HRAM,
  1181.           would be:
  1182.  
  1183.           devicehigh=ansi.sys
  1184.  
  1185.           The commands to load the program into the second memory region in
  1186.           high memory (regions are numbered starting with 0) and provide an
  1187.           additional 64K of memory would be:
  1188.  
  1189.           device=hram.sys on /r1
  1190.           devicehigh=ansi.sys
  1191.           device=hram.sys off
  1192.  
  1193.  
  1194.           Command reference   
  1195.  
  1196.           The format of the hram.sys command is
  1197.  
  1198.           device=hram.sys [on|off] [options]
  1199.  
  1200.           [on|off]
  1201.              specifies whether HRAM should be "on" or "off".  When HRAM is
  1202.              on, programs can only be loaded into the memory region
  1203.              specified on the HRAM command line (with the /r option) and
  1204.              64K of expanded memory is temporarily converted to high DOS
  1205.              memory. 
  1206.  
  1207.           [options]
  1208.              specifies the optional HRAM parameters described in the
  1209.              following section.
  1210.  
  1211.           The following options can appear in the HRAM command. 
  1212.  
  1213.           /n
  1214.              No pause on error.  If hram.sys reports an error, it waits for
  1215.              you to press a key.  This option causes hram.sys to continue
  1216.              without waiting for a key.
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.                                                                          21
  1226.  
  1227.           /o<order>
  1228.              Set program load order.  This option is useful only if you
  1229.              have a program which must be loaded before one or more other
  1230.              programs.  For example, to ensure that program1.sys is loaded
  1231.              before program2.sys and program3.sys, include these commands
  1232.              in your config.sys file:
  1233.  
  1234.              device=hram.sys on /o1
  1235.              device=program1.sys
  1236.              device=hram.sys on /o2
  1237.              device=program2.sys
  1238.              device=program3.sys
  1239.              device=hram on
  1240.  
  1241.              This option is valid only if the /s option is used on the
  1242.              hramdev.sys command line.  Otherwise, it is ignored.
  1243.  
  1244.           /p
  1245.              Do not temporarily convert 64K of expanded memory to high DOS
  1246.              memory for use during program initialization.
  1247.  
  1248.           /r<region>
  1249.              Load into memory region number <region>.  This option causes
  1250.              DEVICEHIGH to load one or more programs into the specified
  1251.              memory region.  For example, the following commands would load
  1252.              the programs, notepad.sys and calc.sys, into memory region 1
  1253.              (memory regions are numbered starting with 0): 
  1254.  
  1255.              device=hram.sys on /r1
  1256.              devicehigh=notepad.sys
  1257.              devicehigh=calc.sys
  1258.              device=hram.sys off
  1259.  
  1260.              Without this option, DEVICEHIGH loads drivers into the first
  1261.              memory region in which they fit.
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.                                                                          22
  1287.  
  1288.  
  1289.           YOUR TURN
  1290.  
  1291.           We value you opinions.  Please let us know what you like and
  1292.           dislike about the HRAM program and user's guide.  We're dedicated
  1293.           to developing the most innovative and useful software available--
  1294.           and selling it at reasonable prices.  Your support helps make
  1295.           this possible.
  1296.  
  1297.           Please send all comments and suggestions to
  1298.  
  1299.           Biologic 
  1300.           POB 1267
  1301.           Manassas VA  
  1302.           22110
  1303.           USA
  1304.  
  1305.           THANK YOU.
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.